package com.winshare.saleAssistant.dao;

import com.winshare.saleAssistant.domain.dto.req.MenuDTO;
import com.winshare.saleAssistant.domain.dto.resp.StaffExcelExportData;
import com.winshare.saleAssistant.domain.entity.*;
import com.winshare.saleAssistant.domain.query.StaffExcelExportQuery;
import com.winshare.saleAssistant.domain.query.StaffQuery;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
@Component
public interface StaffMapper { 
    
    int saveStaff(StaffDO staffDO);

    int countByAccount(StaffDO staffDO);

    int countByPhone(StaffDO staffDO);

    StaffDO queryByStaff(StaffDO staffDO);

    void updateStaff(StaffDO staffDO);

    int deleteStaff(StaffDO staffDO);

    int queryStaffCount(StaffQuery staffQuery);

    List<StaffDO> findStaffListByConditions(StaffQuery staffQuery);

    List<RoleDO> queryRoleListByStaff(StaffDO staffDO);

    List<MenuDO> getMenuListByPerson(StaffDO staffDO);

    StaffDO getStaff(StaffDO staffDO);

    List<AppDO> getAppListByPerson(StaffDO staffDO);

    List<AppRoleDO> queryAppRoleListByStaff(StaffDO staffDO);

    StaffDO getCurrentStaffInfo(StaffDO staffDO);

    List<StaffExcelExportData> getStaffExcelExportList(StaffExcelExportQuery staffExcelExportQuery);

    List<MenuDTO> getMenuListByApp(AppMenuDO appMenuDO);
}
